/*****************************************************************************
 * $LastChangedDate: 2011-08-20 12:07:38 -0400 (Sat, 20 Aug 2011) $
 * @file
 * @author  Jim E. Brooks  http://www.palomino3d.org
 * @brief   Math definitions.
 *//*
 * LEGAL:   COPYRIGHT (C) 2004 JIM E. BROOKS
 *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
 *          OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2).
 *****************************************************************************/

#ifndef MATH_DEFS_TRIG_HH
#define MATH_DEFS_TRIG_HH 1

#include "math/types_trig.hh"

namespace math {

////////////////////////////////////////////////////////////////////////////////
///////////////////////////////  T R I G   /////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

// fpx is used in trig functions since they're used in matrix functions
// which need to maintain precision.
//  90' = PI / 2
// 180' = PI
// 360' = PI * 2
const fpx PI        = 3.14159265358979323846L;      ///< L for long double
const fpx PI_DOUBLE = 6.28318530717958647692L;      ///< pi * 2.0
const fpx PI_HALF   = 1.57079632679489661926L;      ///< pi / 2.0 [equivalent to 90']

const Radian RADIAN_1   = 0.01745329251994329577L;  ///< 1'   in radians
const Radian RADIAN_90  = math::PI_HALF;            ///< 90'  in radians (quarter circle)
const Radian RADIAN_180 = math::PI;                 ///< 180' in radians (half circle)
const Radian RADIAN_360 = math::PI_DOUBLE;          ///< 360' in radians (full circle)

} // namespace math

#endif // MATH_DEFS_TRIG_HH
